Fault - Injector using UNIX ptrace Interface

نویسنده

  • Volkmar SIEH
چکیده

The goal of this internal report is to summarize the experiences with the fault injector based on the Unix ptrace function. It should be explained how to use the fault injector for special experiments and how to interpret the results. In the first chapter (" ptrace(2) Interface ") an overview on the facilities of the Unix ptrace interface is given to see what faults/errors may be simulated by this interface. The limitations of this function are shown. The currently implemented faults which can be injected by the fault injector are enlisted in the second part of this paper (" Fault Model "). It is described how to implement other fault injecting functions to the fault injector program. The next chapter (" Measurements using the Fault Injector ") gives hints to the user how to interpret the results of the fault injector used in experiments. Many effects may influence the measurements. Some of them are discussed in this part of the paper. The syntax of the input and output of the fault injector is presented in the section " Command Language and Output Format ". Some examples are given to ease the use of this program. The fault injector was used to evaluate fault coverage and fault latency of some methods of fault tolerance. The experiences of this experiments and a summary of the advantages and disadvantages are given in the last section of this paper (" Experience "). Normally no Unix process has access to the internal state of another process. The processes are separated from each other by using different physical address ranges protected by the MMU and time shared use of the CPU. Direct access to hardware registers is prohibited for every process. The ptrace(2) interface of the Unix operating system was originally designed to allow debug-ging of single processes. A debugger must be able to read and modify the local and global variables and the program counter of his debuggee. The data flow between the debugger and the UNIX-OS Fault Injector Program Hardware Volkmar Sieh Fault Injector 30.11.93 3 tested program is checked by the kernel. So changes in the state of the debugged process cannot affect other running processes. The normal multiuser and multi-tasking facilities of the UNIX operating system are still provided. Access to the internal state of a process is granted only if the following conditions are met: 1. The tested process must agree …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software Based Concurrent Control Flow Checking

A software technique to concurrently detect errors is presented It is based on monitoring the sequence of high level language statements using assigned signature control ow checking A preprocessor analyzes the program source and inserts control ow checking code into the program This method is shown to have only a low execution time overhead and moderate program size overhead It was evaluated on...

متن کامل

TMR For Off–The–Shelf Unix Systems

This paper presents a concept study that demonstrates a transparent (non–intrusive to the application or the kernel) active replication and TMR–based fault tolerance in PC/Linux platforms. The target platform is the low–cost clusters of PCs that are increasingly more often found in the budget–oriented internet service industry. The solution we adopted is based on two ideas: 1) intercepting syst...

متن کامل

Introduction of Modern Subsystems at the Kek Injector-linac

As an accelerator control system survives over several years, it is often the case that new subsystems are introduced into the original control system. The control system for the KEK electron/positron injector-linac has been using Unix workstations and VME computers since 1993. During the eight-year operation, we extended the system by introducing a) Windows PCs, b) PLC controllers with a netwo...

متن کامل

Temporal Debugging: Automating Time Travel Debugging with URDB

This work addresses two classical problems in debugging. First, while some excellent reversible debuggers have been built for C, C++, Java, Standard ML, other languages including MATLAB, Python and Perl lack such reversible debuggers. To solve this, this work contributes a new temporal debugging approach and a new software package, URDB (Universal Reversible DeBugger), which can extend the nati...

متن کامل

A Portable Kernel Abstraction for Low-Overhead Ephemeral Mapping Management

Modern operating systems create ephemeral virtual-to-physical mappings for a variety of purposes, ranging from the implementation of interprocess communication to the implementation of process tracing and debugging. With succeeding generations of processors the cost of creating ephemeral mappings is increasing, particularly when an ephemeral mapping is shared by multiple processors. To reduce t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993